package com.migu.spms.service.inf;

import java.util.List;

import com.migu.spms.dao.entity.FunctionRequireCriteria;
import com.migu.spms.service.data.PaginationResult;
import com.migu.spms.service.data.User;
import com.migu.spms.webapi.data.CommentResponse;
import com.migu.spms.webapi.data.CorrelaRequireResponse;
import com.migu.spms.webapi.data.RequirementDetailInfo;
import com.migu.spms.webapi.data.RequirementDetailsResponse;
import com.migu.spms.webapi.data.RequirementInfo;

/**   
* IRequirementService接口
* 项目名称:  SPMS功能需求
* 包名称:    com.migu.spms.service.inf   
* 类名称:    IRequirementService.java
* 类描述:    公共服务接口
* 创建人:    xs   
* 创建时间:  2017年6月13日 下午9:40   
*/
public interface IRequirementService {

	
   
//	/**查询所有的需求
//     * @param FunctionRequireCriteria,User
//     * @return PaginationResult<RequirementInfo>
//     */
//	PaginationResult<RequirementInfo> queryRequirementList(FunctionRequireCriteria functionRequireInfo,User user)  throws Exception;
//	
//	/**查询需求列表子需求
//	 * @param user 
//	 * @param FunctionRequireCriteria
//	 * @return
//	 */
//	List<RequirementInfo> requireSubQuery(FunctionRequireCriteria functionRequireCriteria, User user) throws Exception;
	
	/**查询需求详情
     * @param FunctionRequireCriteria
     * @return
     */
	RequirementDetailsResponse requireDeatils(FunctionRequireCriteria functionRequireCriteria, User user) throws Exception;

	/**查询需求详情关联需求
     * @param FunctionRequireCriteria
     * @return
     */
	PaginationResult<RequirementDetailInfo> requireDetailsCorrelation(FunctionRequireCriteria functionRequireCriteria, User user) throws Exception;

	/**
	 * 关联需求查询需求名称
	 */
	CorrelaRequireResponse queryCorrelaRequirementName(FunctionRequireCriteria functionRequireCriteria) throws Exception;

	/**
	 * 关联需求
	 * @param functionRequireCriteria
	 * @return
	 */
	String correlaRequire(FunctionRequireCriteria functionRequireCriteria) throws Exception;

	/**
	 * 一次性查出所有需求
	 */
	PaginationResult<RequirementInfo> allRequireByPage(FunctionRequireCriteria functionRequireCriteria, User user) throws Exception;

	/**
	 * 需求详情，评论接口
	 * @return
	 */
	CommentResponse queryCommentList(FunctionRequireCriteria functionRequireCriteria, User user);
	
	/**
	 * 待我处理和我已处理接口
	 */
	PaginationResult<RequirementInfo> myCurrent(FunctionRequireCriteria functionRequireCriteria, User user)
			throws Exception;
	
    /**
    * @Title: queryHomePageWaitingHandle
    * @Description: 首页代办事项
    * @param @param functionRequireCriteria
    * @param @param user
    * @param @return
    * @param @throws Exception  
    * @return PaginationResult<RequirementInfo>
    * @author le
    * @throws
    */ 
    PaginationResult<RequirementInfo> queryHomePageWaitingHandle(FunctionRequireCriteria functionRequireCriteria, User user) throws Exception;

}
